import cv2
import numpy as np

# shi-tomasi拐角检测
img = cv2.imread("C:\\Users\\86191\\Pictures\\Saved Pictures\\Camera Roll\\shudu.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 提取角点
"""
gray：输入的灰度图像。
250：最多检测到的特征点数量。
0.01：用于确定特征点质量的阈值，值越小质量越高。
5：连续检测到的特征点之间的最小距离。
"""
d = cv2.goodFeaturesToTrack(gray,250,0.01,5)
d = np.intp(d)

# 画出角点
for i in d:
    # x,y坐标,二维数组i展平为一维数组赋值给x,y
    x,y = i.ravel()
    # 画圆
    cv2.circle(img,(x,y),3,[0,255,0],-1)
cv2.imshow("img",img)
cv2.waitKey(0)